The present invention relates to user interfaces for computer programs, and in particular, to systems and methods for generating user interfaces.
User interfaces provide a mechanism that allow human beings to interact with computer systems. A wide variety of user interfaces exist. User interfaces may include menus, window, buttons, tables, icons and a variety of other graphical means for representing functionality, operations, or elements of a computer program. However, user interfaces are traditionally designed to work specifically with the underlying computer program so that the computer program's logic that may be accessed or influenced by a user can be represented in the user interface. Thus, user interfaces tend to be customized for the underlying program logic.
One problem with customizing user interfaces with the underlying program logic is that program logic may change. For example, functionality of the program logic that is effected by a user may be added, deleted, or otherwise modified. When changes are made to the program logic, redesign and reprogramming of the user interface is typically required. Redesigning and reprogramming the user interface can often be time consuming and expensive, potentially requiring many hours of development and debugging time of a professional computer programmer. What is needed is a technique for decreasing the direct dependency of the user interface on the program logic.
Thus, there is a need for improved systems and methods for generating user interfaces. The present invention solves these and other problems by providing semantic interpretation of software models for generating user interfaces.